package com.czkt.config;

import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.client.RestTemplate;

import java.nio.charset.StandardCharsets;
import java.util.Base64;
import java.util.HashMap;
import java.util.Map;

public class Main {
//    private static final String OAUTH_TOKEN_URL = "https://your-auth-server.com/oauth/token"; // 替换为你的OAuth2授权服务器的URL
//    private static final String CLIENT_ID = "your-client-id"; // 替换为你的客户端ID
//    private static final String CLIENT_SECRET = "your-client-secret"; // 替换为你的客户端密钥
//    private static final String USERNAME = "user-name"; // 替换为用户的用户名
//    private static final String PASSWORD = "user-password"; // 替换为用户的密码
//
//    public static void main(String[] args) {
//        RestTemplate restTemplate = new RestTemplate();
//
//        // 准备请求头，通常包含Basic Authentication的客户端凭据
//        HttpHeaders headers = new HttpHeaders();
//        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
//        String auth = CLIENT_ID + ":" + CLIENT_SECRET;
//        byte[] encodedAuth = Base64.getEncoder().encode(auth.getBytes(StandardCharsets.UTF_8));
//        String authHeader = "Basic " + new String(encodedAuth, StandardCharsets.UTF_8);
//        headers.set("Authorization", authHeader);
//
//        // 准备请求体，包含用户名、密码和grant_type
//        Map<String, String> requestParams = new HashMap<>();
//        requestParams.put("username", USERNAME);
//        requestParams.put("password", PASSWORD);
//        requestParams.put("grant_type", "password");
//
//        // 发送POST请求
//        HttpEntity<Map<String, String>> request = new HttpEntity<>(requestParams, headers);
//        ResponseEntity<String> response = restTemplate.postForEntity(OAUTH_TOKEN_URL, request, String.class);
//
//        // 处理响应
//        if (response.getStatusCode().is2xxSuccessful()) {
//            // 解析返回的JSON并获取访问令牌
//            // 这里只是一个示例，实际中你可能需要使用JSON库（如Jackson）来解析
//            System.out.println("Access Token: " + response.getBody()); // 这里假设服务器返回的是完整的JSON字符串
//        } else {
//            // 处理错误
//            System.out.println("Error: " + response.getStatusCode() + " - " + response.getBody());
//        }
//    }
}
